package cn.me.alphamq.common.util;

import java.util.Properties;

/**
 * Properties 的工具类
 *
 * @author f
 */
public class PropertiesUtil {

    /**
     * 获取 int 值的配置
     *
     * @param properties 配置对象
     * @param key        键值
     * @return
     */
    public static int getIntProperty(Properties properties, String key) {
        return Integer.parseInt(getNotNullProperty(properties, key));
    }

    /**
     * 获取 boolean 值的配置
     *
     * @param properties 配置对象
     * @param key        键值
     * @return
     */
    public static Boolean getBooleanProperty(Properties properties, String key) {
        return Boolean.parseBoolean(getNotNullProperty(properties, key));
    }

    /**
     * 获取非空的配置
     *
     * @param properties 配置对象
     * @param key        键值
     * @return
     */
    public static String getNotNullProperty(Properties properties, String key) {
        String value = properties.getProperty(key);
        AssertUtil.isNotNull(value, "配置参数 <" + key + "> 不存在");
        return value;
    }

    /**
     * 获取可以为空的配置
     *
     * @param properties 配置对象
     * @param key        键值
     * @return
     */
    public static String getNullableProperty(Properties properties, String key) {
        return properties.getProperty(key);
    }
}
